package Problemdomeneklasser;

import Database.DBHandler;
import java.util.ArrayList;
import java.util.Random;

public class Sporsmaal {

    private final Random lenkgen;
    private int sid;
    private String navn;
    private String tekst;
    private int lid;
    private boolean radio;
    private String lenke;
    private ArrayList<Alternativ> alternativer;

    public Sporsmaal(String navn, String tekst, int lid, boolean radio) {
        this.lenkgen = new Random();
        this.navn = navn;
        this.tekst = tekst;
        this.lid = lid;
        this.radio = radio;
        this.lenke = genLenke();
        this.alternativer = new ArrayList<Alternativ>();
    }

    public Sporsmaal(int sid, String navn, String tekst, int lid, boolean radio, ArrayList<Alternativ> alternativer) {
        this.lenkgen = new Random();
        this.sid = sid;
        this.navn = navn;
        this.tekst = tekst;
        this.lid = lid;
        this.radio = radio;
        this.lenke = genLenke();
        this.alternativer = new ArrayList<Alternativ>();
        for (int i = 0; i < alternativer.size(); i++) {
            this.alternativer.add(alternativer.get(i));
        }
    }

    public Sporsmaal(int sid, String navn, String tekst, int lid, boolean radio) {
        this.lenkgen = new Random();
        this.sid = sid;
        this.navn = navn;
        this.tekst = tekst;
        this.lid = lid;
        this.radio = radio;
        this.lenke = genLenke();
    }

    public int getSid() {
        return sid;
    }

    public void setSid(int sid) {
        this.sid = sid;
    }

    public String getLenke() {
        return lenke;
    }

    public void nyLenke() {
        this.lenke = genLenke();
    }

    private String genLenke() {
        return (1000 + lenkgen.nextInt(9000))+"";
    }

    public void setLenke(String lenke) {
        this.lenke = lenke;
    }

    public int getLid() {
        return lid;
    }

    public void setLid(int lid) {
        this.lid = lid;
    }

    public String getNavn() {
        return navn;
    }

    public void setNavn(String navn) {
        this.navn = navn;
    }

    public String getTekst() {
        return tekst;
    }

    public void setTekst(String tekst) {
        this.tekst = tekst;
    }

    public boolean isRadio() {
        return radio;
    }

    public void setRadio(boolean radio) {
        this.radio = radio;
    }

    public ArrayList getAlternativer() {
        return alternativer;
    }

    public void setAlternativer(ArrayList alternativer) {
        this.alternativer = alternativer;
    }

    public Alternativ getAlternativ(String navn) {
        Alternativ alt = null;
        for (Alternativ a : alternativer) {
            if (a.getNavn().equals(navn)) {
                alt = a;
            }
        }
        return alt;
    }

    public boolean registrer(DBHandler dbh) {
        sid = dbh.regNyttSpm(this);
        if (sid > 0) {
            return true;
        }
        return false;
    }

    @Override
    public String toString() {
        return "Sporsmaal{" + "sid=" + sid + ", navn=" + navn + ", tekst=" + tekst + ", lid=" + lid + ", radio=" + radio + ", lenke=" + lenke + ", alternativer=" + alternativer + '}';
    }

    public String toJavaScript() {
        String altArray = "new Array(";
        for (int i = 0; i < alternativer.size(); ++i) {
            if (i != 0) {
                altArray += ",";
            }
            altArray += alternativer.get(i).toJavaScript() + "";
        }
        altArray += ")";
        return "new question(" + sid + ",'" + navn + "', '" + tekst + "'," + lid
                + ", " + radio + ",'" + lenke + "'," + altArray + ")";
    }
}